all: colim.exe clipnscale.exe starfind.exe chromeshift.exe score.exe stacker.exe solar.exe align.exe solar_fine.exe motion.exe blend.exe unittest.exe trigamma.exe grid.exe check_noise.exe dcraw2.exe rawtoppm.exe make_hotmap.exe stack_raw.exe check_noise2.exe make_dark.exe bitconv_16_to_8.exe score_raw.exe mincol.exe whitebal.exe histogram.exe makemat.exe stretch.exe


ALIB_OBJS=aimage.o astar.o aimage_ppm.o aimage_gui.o aimage_pixutils.o aimage_colrange.o aimage_starfind.o aimage_sunfind.o aimage_utils.o accumulate.o dcraw.o astar_file.o argv_parse.o 

clean:
	rm -f *.o *.exe *.a

%.o:	%.cpp
	g++ -c -O3 -funroll-loops -fomit-frame-pointer  -fno-tree-pre -falign-loops -ffast-math -ftree-vectorize $<

%.o:	%.c
	gcc -c -Wall -g $<

colim.exe:	aimage.a colim.o
	g++ -o colim colim.o aimage.a

clipnscale.exe:	aimage.a clipnscale.o
	g++ -o clipnscale clipnscale.o aimage.a

hueshift.exe:	aimage.a hueshift.o
	g++ -o hueshift hueshift.o aimage.a

starfind.exe:	aimage.a starfind.o
	g++ -o starfind starfind.o aimage.a

chromeshift.exe:	aimage.a chromeshift.o
	g++ -o chromeshift chromeshift.o aimage.a

score.exe:	aimage.a score.o
	g++ -o score score.o aimage.a

stacker.exe:	aimage.a stacker.o
	g++ -o stacker stacker.o aimage.a

solar.exe:		aimage.a solar.o
	g++ -o solar solar.o aimage.a

solar_fine.exe:	aimage.a solar_fine.o
	g++ -o solar_fine solar_fine.o aimage.a

align.exe:		aimage.a align.o
	g++ -o align align.o aimage.a

motion.exe:		aimage.a motion.o
	g++ -o motion motion.o aimage.a

blend.exe:		aimage.a blend.o
	g++ -o blend blend.o aimage.a

unittest.exe:		aimage.a unittest.o
	g++ -o unittest unittest.o aimage.a

trigamma.exe:		aimage.a trigamma.o
	g++ -o trigamma trigamma.o aimage.a

grid.exe:		aimage.a grid.o
	g++ -o grid grid.o aimage.a

check_noise.exe:		aimage.a check_noise.o
	g++ -o check_noise check_noise.o aimage.a

check_noise2.exe:		aimage.a check_noise2.o
	g++ -o check_noise2 check_noise2.o aimage.a

make_hotmap.exe:		aimage.a make_hotmap.o
	g++ -o make_hotmap make_hotmap.o aimage.a

make_dark.exe:		aimage.a make_dark.o
	g++ -o make_dark make_dark.o aimage.a

stack_raw.exe:		aimage.a stack_raw.o
	g++ -o stack_raw stack_raw.o aimage.a

whitebal.exe:		aimage.a whitebal.o
	g++ -o whitebal whitebal.o aimage.a

histogram.exe:		aimage.a histogram.o
	g++ -o histogram histogram.o aimage.a


dcraw2.exe:		dcraw2.o
	gcc -o dcraw2 dcraw2.o -lm

rawtoppm.exe:		rawtoppm.o aimage.a
	g++ -pg -o rawtoppm rawtoppm.o aimage.a

bitconv_16_to_8.exe:		bitconv_16_to_8.o aimage.a
	g++ -g -o bitconv_16_to_8 bitconv_16_to_8.o aimage.a

score_raw.exe:		score_raw.o aimage.a
	g++ -g -o score_raw score_raw.o aimage.a

mincol.exe:		mincol.o aimage.a
	g++ -g -o mincol mincol.o aimage.a

makemat.exe:		makemat.o aimage.a
	g++ -g -o makemat makemat.o aimage.a

stretch.exe:		stretch.o aimage.a
	g++ -g -o stretch stretch.o aimage.a

aimage.a: $(ALIB_OBJS)
	ar rcs aimage.a $(ALIB_OBJS)

